#include <QtCore/QProcess> // 用于执行外部命令（如notify-send）
#include <QtWidgets/QApplication>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>

int main(int argc, char *argv[]) {
  QApplication app(argc, argv);

  QWidget mainWindow;
  mainWindow.setWindowTitle("Qt通知示例");
  mainWindow.resize(400, 300);
  mainWindow.setMinimumSize(200, 150);

  QVBoxLayout *layout = new QVBoxLayout(&mainWindow);

  QPushButton *button = new QPushButton("点击发送通知");
  button->setFixedSize(150, 40);
  layout->addWidget(button, 0, Qt::AlignCenter);

  // 关联按钮点击事件到lambda函数（发送通知）
  QObject::connect(button, &QPushButton::clicked, []() {
    // 调用notify-send发送通知（标题："提示"，内容："按钮被点击了！"）
    QProcess::execute("notify-send",
                      QStringList() << "提示"             // 通知标题
                                    << "按钮被点击了！"); // 通知内容
    // TODO: notify-send no args -i
    // << "-i"
    //    "dialog-information"); // 可选：指定通知图标（信息图标）
  });

  mainWindow.show();
  return app.exec();
}